package com.springboot.personblogsystem.service;

import com.springboot.personblogsystem.common.Result;
import com.springboot.personblogsystem.common.req.UserLoginParam;
import com.springboot.personblogsystem.common.req.UserRegisterParam;
import com.springboot.personblogsystem.model.User;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpSession;

/**
 * Created with IntelliJ IDEA.
 * Description :
 * User: jiume
 * Date: 2025-05-14
 * Time: 9:18
 */
public interface UserService {

    /**
     * 用户登录
     * @param userLoginParam 用户登录所需参数
     * @param session 会话（用于存储用户信息）
     * @return 是否登录成功
     */
    Result<Boolean> userLogin(UserLoginParam userLoginParam , HttpSession session);

    /**
     * 用户注册
     * @param userRegisterParam 用户注册参数
     * @return 是否注册成功
     */
    Result<Boolean> userRegister(UserRegisterParam userRegisterParam);

    /**
     * 获取用户个人信息
     * @param request 通过其来获取对应的session信息
     * @return 用户个人信息
     */
    Result<User> getUserInfo(HttpServletRequest request);

    /**
     * 清除用户登录态
     * @param request 通过其来获取对应的session信息，继而删除
     * @return 是否清除成功
     */
    Result<Boolean> deleteUserSession(HttpServletRequest request);
}
